package com.neouton.crm.pm.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.approval.entity.ApprovalVO;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
public class BackMoneyRecordVo extends BaseEntityVO implements Serializable {

    /**
     * 回款i记录id
     */
    private Integer bmrId;
    /**
     * 项目id
     */
    private Integer projectManageId;
    /**
     * 合同id
     */
    private Integer contractId;
    /**
     * 回款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date bmrDate;

    private String bmrDateStr;
    /**
     * 期次
     */
    private String bmrPeriod;
    /**
     * 回款金额
     */
    private String bmrMoney;

    private String bmrMoneyPage;
    /**
     * 冲消金额
     */
    private String bmrFlushMoney;
    /**
     * 回款备注
     */
    private String bmrRemarks;
    /**
     * 是否回款 0 未回款  1 回款
     */
    private Integer isBm;

    private String isBmName;
    /**
     * 开具发票  1已开票 2 未开票 3无需开票
     */
    private Integer isBilling;

    private String isBillingName;
    /**
     * 责任人
     */
    private Integer liableId;

    private String liableName;

    private String account;
    /**
     * 审批表主键ID
     */
    private Integer approvalId;
    /**
     * 审批状态名称
     */
    private String approvalStatusName;
    /**
     * 合同名称
     */
    private String contractTopic;
    /**
     * 状态
     */
    private Integer state;
    /**
     * 审批主键表
     */
    private Integer approvalStatus;

    private String projectTheme;

    /**
     * 日期集合
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private List<Date> bmrDateList;

    /**
     * 回款金额
     */
    private List<Integer> bmrMoneyList;
    /**
     * 冲销金额
     */
    private List<Integer> bmrFlushMoneyList;
    /**
     * 合同甲方名称
     */
    private String enterpriseName;
    /**
     * 开票记录id
     */
    private Integer billId;

    /**
     *申请原因
     */
    private String askReason;
    /**
     *审批原因
     */
    private String opinion;
    /**
     * 跟单视图中全部时间线下 所需数据
     */
    private Map<String, Object> allInfo;
    /**
     * 合同甲方
     */
    private String  contractLessorName;

    private String paramsType;

    private List<Integer> approvalIdList;

    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;
    /**
     * 编号
     */
    private String approvalCode;
    /**
     * 回款名称
     */
    private String backName;

    private String dateOption;
    /**
     * 转发人员集合
     */
    private List<Integer> senderList;

    private List<BackBillingMoneyVo>  backBillingMoneyVos;

    private Integer projectPrincipal;
}
